import 'dart:async';

/// 节流函数：在指定的间隔内，只执行第一次调用，后续调用会被忽略。
Function throttle(Function callback, Duration delay) {
  bool isReady = true;

  return () {
    if (!isReady) return;
    isReady = false;
    callback();

    Timer(delay, () {
      isReady = true;
    });
  };
}

Function debounce(Function callback, Duration delay) {
  Timer? _timer;

  return () {
    _timer?.cancel(); // 每次调用都取消之前的计时器
    _timer = Timer(delay, () {
      callback();
    });
  };
}
